package com.cloudbroker.bcs.csvc.uc.api.service;

import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.csvc.base.api.service.HSBCCSService;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncAdviserForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncAuthCodeForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncCodeCheckForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncLoginForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncPasswordResetForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncRegisterAndLoginForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncRegisterForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.FuncUserUpdateForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.base.UCForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.AdviserInfoVo;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.AuthCodeBackVo;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.CheckRegisterBackVo;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.CustomerAccountType;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.UIDBackVo;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.UserInfoBackVo;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.base.UCBackVo;

/**
 * 
 * @author panjx12801
 *
 */
public interface UCService extends HSBCCSService {
    
    @NoLogin
    public UIDBackVo funcRegister(FuncRegisterForm param);
    
    @NoLogin
    public UIDBackVo funcLogin(FuncLoginForm param);
    
    @NoLogin
    public AuthCodeBackVo funcAuthCodeGet(FuncAuthCodeForm param);
    
    @NoLogin
    public UCBackVo funcAuthCodeLogin(FuncCodeCheckForm param);
    
    @NoLogin
    public HSBCPSBackVO funcUserUpdate(FuncUserUpdateForm param);
    
    @NoLogin
    public UserInfoBackVo funcUserinfo(UCForm param);
    
    @NoLogin
    public UserInfoBackVo funcUserTokenCheck(UCForm param);
    
    @NoLogin
    public HSBCPSBackVO funcLogout(UCForm param);
    
    @NoLogin
    public HSBCPSBackVO funcPasswordReset(FuncPasswordResetForm param);
    
    @NoLogin
    public UIDBackVo funcRegisterAndLogin(FuncRegisterAndLoginForm param);
    
    @NoLogin
    public UserInfoBackVo funcUserBasicInfo(FuncLoginForm param);
    
    @NoLogin
    public CheckRegisterBackVo funcCheckRegister(FuncLoginForm param);

    @NoLogin
    public AdviserInfoVo funcAdviserGet(FuncAdviserForm param);

    @NoLogin
    public CustomerAccountType funcIsCapitalAccount(UCForm form);
}
